package it.cursos.escolalivre.modelo;

import java.util.ArrayList;
import java.util.List;

public class Turma {

	private Curso curso;
	private List<Aluno> alunos;
	private Horario horario;
	private String professor;
	private String sala;
	private List<Aula> aulas;

	public Turma() {
		inicializarListas();
	}


	public Turma(Horario horario,String professor,String sala, List<Aluno> alunos,List<Aula> aulas) {
		inicializarListas();
		setHorario(horario);
		setProfessor(professor);
		setSala(sala);
		setAlunos(alunos);
		setAulas(aulas);
	}

	public void inicializarListas(){
		alunos = new ArrayList<Aluno>();
		aulas = new ArrayList<Aula>();
	}

	public Curso getCurso() {
		return curso;
	}

	public void setHorario(Horario horario) {
		this.horario = horario;
	}

	public Horario getHorario() {
		return horario;
	}

	public void setCurso(Curso curso) {
		this.curso = curso;
	}

	public List<Aluno> getAlunos() {
		return alunos;
	}

	public void setAlunos(List<Aluno> alunos) {
		this.alunos = alunos;
	}

	public String getProfessor() {
		return professor;
	}

	public void setProfessor(String professor) {
		this.professor = professor;
	}

	public String getSala() {
		return sala;
	}

	public void setSala(String sala) {
		this.sala = sala;
	}

	public List<Aula> getAulas() {
		return aulas;
	}

	public void setAulas(List<Aula> aulas) {
		this.aulas = aulas;
	}

	public void addAluno(Aluno aluno){
		this.alunos.add(aluno);
	}

	public void addAula(Aula aula){
		this.aulas.add(aula);
	}
	
	public Aluno consultaPorMatricula (int matricula){
		Aluno retornoEcontrado = null;
		for (Aluno aluno : alunos) {
			if (aluno.getMatricula() == matricula){
				retornoEcontrado = aluno;
			}
		}
		return retornoEcontrado;
	}
	
	public Aluno consultaAlunoPorNome (String nomeDoAluno){
		Aluno retornoEncontrado = null;
		for (Aluno aluno : alunos) {
			if (aluno.getNome().equals(nomeDoAluno)){
				retornoEncontrado = aluno;
			}
		}
		return retornoEncontrado;
	}
	
	public List<Aluno> consultaTodosAlunos(){
		return this.getAlunos();
	}

	public String toString() {
		return String
				.format(
						"Curso: %s \nProfessor: %s | Sala: %s \nHorário: %s \nAlunos: %s \nAulas acontecidas: %s",
						curso, professor, sala, horario, alunos, aulas);
	}
}
